import moment from "moment";
/**
 * 时间日期相关操作
 */

/**
 * 时间格式化
 * 将 秒级时间戳 1548080418格式化成 2019-01-21 00:00:00
 * @param datetime 时间戳转化字符串
 */
function formatDate(timeStamp) {
  if(!timeStamp || timeStamp === '/'){
    return ''
  }
  var date = new Date();
  date.setTime(timeStamp);
  var y = date.getFullYear();
  var m = date.getMonth() + 1;
  m = m < 10 ? ('0' + m) : m;
  var d = date.getDate();
  d = d < 10 ? ('0' + d) : d;
  return y + '-' + m + '-' + d;
}

/**
 * 时间格式化
 * 将 秒级时间戳 1548080418格式化成 2019-01-21 00:00:00
 * @param datetime 时间戳转化字符串
 */
function formatTime(timeStamp) {
  if(!timeStamp || timeStamp === '/'){
    return ''
  }
  var date = new Date();
  date.setTime(timeStamp);
  var y = date.getFullYear();
  var m = date.getMonth() + 1;
  m = m < 10 ? ('0' + m) : m;
  var d = date.getDate();
  d = d < 10 ? ('0' + d) : d;
  var h = date.getHours();
  h = h < 10 ? ('0' + h) : h;
  var minute = date.getMinutes();
  var second = date.getSeconds();
  minute = minute < 10 ? ('0' + minute) : minute;
  second = second < 10 ? ('0' + second) : second;
  return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;
}

/**
 * 金钱格式化
 * 将 分为单位的钱 格式化成元单位
 * @param datetime 价格分转化价格元
 */
function formatPrice(originPrice) {
  if (Number(originPrice) === 0) {
    return 0.00
  } else {
    return (originPrice / 100).toFixed(2);
  }
}

/**
 * 时间格式化
 * 将 2018-09-23T11:54:16.000+0000 格式化成 2018-09-23 11:54:16
 * @param datetime 国际化日期格式
 */
function format(datetime) {
  return moment(datetime).format('YYYY-MM-DD HH:mm:ss')
  // return formatWithSeperator(datetime, "-", ":");
}

/**
 * 文件类型格式化
 * 将 带有后缀的文件名 转换为文件图标地址
 */
function formatFileIcon(fileName) {
  let split = fileName.split('.') // 分割字符串
  let back = split[split.length - 1] // 获取后缀
  
  let doc = ['doc','docx']
  let ppt = ['ppt','pptx']
  let xls = ['xls','xlsx']
  let zip = ['zip','rar']
  let file = ['mp4','pdf']
  
  if(doc.indexOf(back) !== -1){
    return '/static/img/resource/doc.svg'
  }else if(ppt.indexOf(back) !== -1){
    return '/static/img/resource/ppt.svg'
  }else if(xls.indexOf(back) !== -1){
    return '/static/img/resource/xls.svg'
  }else if(zip.indexOf(back) !== -1){
    return '/static/img/resource/zip.svg'
  }else{
    return '/static/img/resource/file.svg'
  }
}

/*
 * 处理富文本内部的img标签，宽度最大100%
*/
function formatRichText(richText){
  if(!richText){
    return ''
  }
  const regex = new RegExp('<img', 'gi');
  richText= richText.replace(regex, `<img style="max-width: 100%;"`);
  return richText;
}

/**
 * 时间格式化
 * 将 2018-09-23T11:54:16.000+0000 格式化成类似 2018/09/23 11:54:16
 * 可以指定日期和时间分隔符
 * @param datetime 国际化日期格式
 */
function formatWithSeperator(datetime, dateSeprator, timeSeprator) {
  if (datetime != null) {
    const dateMat = new Date(datetime);
    const year = dateMat.getFullYear();
    const month = dateMat.getMonth() + 1;
    const day = dateMat.getDate();
    const hh = dateMat.getHours();
    const mm = dateMat.getMinutes();
    const ss = dateMat.getSeconds();
    const timeFormat = year + dateSeprator + month + dateSeprator + day + " " + hh + timeSeprator + mm + timeSeprator +
      ss;
    return timeFormat;
  }
}

/**
 * 时间格式化
 * 输入开始时间戳和结束时间戳，返回时间差格式00:15:20
 * @param datetime 国际化日期格式
 */
function countDown(startTime, endTime) {
  let restTime = endTime - startTime; // 时间差，毫秒
  let hourText, minuteText, secondText = '00';
  hourText = moment.duration(restTime, 'ms')._data.hours || '00';
  minuteText = moment.duration(restTime, 'ms')._data.minutes || '00';
  secondText = moment.duration(restTime, 'ms')._data.seconds || '00';
  // 自动添0
  hourText = (Array(hourText).join(0) + hourText).slice(-2)
  minuteText = (Array(minuteText).join(0) + minuteText).slice(-2)
  secondText = (Array(secondText).join(0) + secondText).slice(-2)
  return hourText + ":" + minuteText + ":" + secondText;
}

/**
 * 倒计时格式化
 * 输入数字和需要填充成的位数，返回"05"
 * @param number 数字格式
 * @param length 数字格式
 */
function addZero(number, length) {
  let resultNum = number
  if (number < 10 && number >= 0 && length === 2) {
    resultNum = "0" + String(number)
  } else if (number < 0 && length === 2) {
    resultNum = "00"
  }
  return resultNum
}

function formatImg(src) {
  if (!src) {
    return ''
  } else if (src.indexOf('http') !== -1 || src.indexOf('wxLocalResource') !== -1) {
    return src
  }else if (src.indexOf('data:image') !== -1) {
    return src
  } else {
    // if (process.env.NODE_ENV === 'development') {
    //   // 测试环境
    //   // Store.state.system.ossLink = Store.state.system.ossLink.replace('https', 'http');
    //   return `${Store.state.system.ossLink}${src}`
    // } else {
    // }
    return `${Store.state.system.ossLink}${src}`
  }
}

export {
  formatDate,
  formatTime,
  formatPrice,
  format,
  formatFileIcon,
  formatWithSeperator,
  countDown,
  addZero,
  formatImg
}
